1. Technical Field
The present invention relates generally to digital computers, and, more specifically, relates to a data processor that retrieves compressed and/or encrypted data from storage over a relatively slow operating system bus and decompresses and/or decrypts the data using components that are connected to a relatively fast operating processor bus located within the data processor as it is received or just prior to execution. The present invention also relates to a data processor that employs decompression and decryption circuitry in a shared resource networking environment to guarantee data security of data stored within an associated data processing system.
2. Related Art
It is well known to compress and decompress data in a data processing system to reduce storage device usage. Software and systems employed to compress and decompress data and instructions (hereinafter "compression/decompression utilities") typically operate on data and instructions (hereinafter "data") in one of two manners. One type of compression/decompression utility operates on data transferred between electronic memory (i.e. random access memory RAM!, static random access memory SRAM!, etc.--hereinafter referred to as "RAM") and bulk storage (i.e. fixed hard discs, optical disks, magnetic tape drives, etc.--hereinafter referred to as "bulk storage"). The utility decompresses data transferred from bulk storage to RAM and compresses data transferred from RAM to bulk storage. By compressing and decompressing data in this fashion, this type of utility increases the amount of otherwise uncompressed data that can be stored in bulk storage of a fixed capacity.
Another type of compression/decompression utility compresses data stored in RAM. By compressing data that is written to RAM, this type of utility increases the amount of otherwise uncompressed data that may be stored in a fixed volume of RAM. One particular compression/decompression utility of this type operates in a time sharing mode in parallel with target processes. When a target process executes an access to RAM, the utility intercepts the access and performs a compression/decompression operation in conjunction with access. Thus, the utility increases overhead associated with operation of the target application and, although enhancing memory storage ability, increases required processor operations for equivalent tasks. The utility achieves an operational benefit only by reducing the number of required data transfers between RAM and slower bulk storage devices.
Another type of compression/decompression utility operates to compress and decompress complete files. When a particular file is written to bulk storage, the utility compresses the file and stores the file in bulk storage. When access to the file is required, the utility decompresses the file and writes the file to bulk storage in an uncompressed format. This type of compression/decompression utility typically operates in a stand-alone mode.
While these utilities addresses storage constraints, either in RAM or bulk storage, the utilities only indirectly enhance operation of the data processing system. In a typical data processing system, a data processor, also referred to as a central processing unit (CPU), executes instructions and operates on data that was previously stored in RAM or bulk storage. The CPU includes a large number of sub-components, each of which performs a particular function on the data. These sub-components typically communicate over a high-speed "processor bus" at a clocking frequency sufficient for the CPU to operate at or near full capacity. However, in typical data processing systems, the CPU operates only at a portion of its full capacity because of delays in retrieving instructions and data from RAM and/or bulk storage over a slower "system bus". To reduce a portion of these delays, modem CPUs typically include cache memories (high speed SRAM) coupled to the processor bus into which blocks of data are loaded. Once this data is loaded into the cache memory, the CPU may access data cache memory and operates at or near full capacity. However, when the CPU seeks data or instructions not present in cache memory, a "page fault" occurs and a block of data must retrieved from RAM or bulk storage over the system bus and loaded into cache memory. A page fault transfer is time consuming and disrupts operation of the CPU, often placing the CPU in a series of wait cycles until the required instructions and/or data are present in cache. The aforementioned utilities for enhancing system resources do not address this data transfer limitation.
Another problem of prior data processing systems relates to the encryption/decryption of security sensitive information stored within RAM or bulk storage. Many modern data processing systems are networked, allowing access to the data processing systems by other users of the network. Through system level instructions, other devices may access the RAM and bulk storage devices within the data processing system through a network interface. Security measures present within the network interface of the data processing system are insufficient to protect security sensitive data stored in RAM and bulk storage devices.
Thus, there lies a need for data processor and related processing system having improved operating characteristics in the transfer of data from RAM and bulk storage to the data processor. Further, there lies a need for an encryption/decryption system that operates to protect RAM and bulk storage contents from unauthorized accesses by other systems.